package pl.edu.agh.neural.core;

import pl.edu.agh.neural.simple.InputConnection;

public interface INeuron {

    public InputConnection[] getInputConnections();

    public double[] getInputConnectionsNodesValues();

    public double[] getInputConnectionsWeights();
    public void setInputConnectionsWeights(double[] weights);

    /**
     * Gets previously evaluated value
     */
    public double getValue();

    /**
     * Calculates and returns output value of neuron based on input
     */
    public double evaluate();

    public double getDerivative();

    double getError();

    void setError(double error);
}
